package user

import (
	"context"
	"gitee.com/shijun123456/srpcinterface/client"
	"gitee.com/shijun123456/srpcinterface/client/user"
)

//这里定义请求信息
// 用户的请求信息
// protobuf 自动生成的
//这里是签名信息
//
type (
	UserReq       = user.ArgsGetUserInfo
	UserinforResp = user.ReplyGetUserinfo
)

type Userer interface {
	GetUserinfoById(ctx context.Context, in *UserReq) (*UserinforResp, error)
}

//默认用户的客户端
type User struct {
	c           client.Client
	servicename string //服务的名称信息
	servicepath string //服务path 信息 服务信息 call path/method
}

func New() *User {
	return &User{}
}
func (f *User) Init() *User {
	f.servicepath = "UserService"
	f.servicename = "user.svc"
	f.c.Init(f) //初始化信息
	return f
}

//接口信息
func (f *User) GetServiceName() string {
	return f.servicename
}
func (f *User) Close() {
	f.c.PutConn(f.c.Conn())
	f.c.PoolClose()
	f.c.Conn().Close()
}

func (u *User) GetUserinfoById(ctx context.Context, in *UserReq) (*UserinforResp, error) {
	client := user.NewUserClient(u.c.Conn())
	return client.GetUserinfoById(ctx, in)
}
